package com.vincce.sport.mapper;

import java.util.List;
import java.util.Map;

import com.vincce.sport.core.MyBatisRepository;
import com.vincce.sport.entity.Page;
import com.vincce.sport.entity.SysResourceRole;
import com.vincce.sport.entity.SysRole;

@MyBatisRepository
public interface SysRoleMapper {
	/**
	 * 分页查询角色
	 * @param page
	 * @return
	 */
	public List<SysRole> querySysRoleList(Page<SysRole> page);
	
	/**
	 * 查询角色总条数
	 * @param map
	 * @return
	 */	
	public Long querySysRoleCount(Map<String, Object> map);
	
	/**
	 * 通过id查询角色
	 * @param id
	 * @return
	 */
	public SysRole findSysRoleById(Long id);
	
	/**
	 * 查询所有角色
	 * @return
	 */
	public List<SysRole> findAllSysRole();
	
	/**
	 * 添加角色
	 * @param sysRole
	 * @return
	 */
	public Long insertSysRole(SysRole sysRole);
	
	/**
	 * 更新角色
	 * @param sysRole
	 * @return
	 */
	public Long updateSysRole(SysRole sysRole);
	
	/**
	 * 根据id删除角色
	 * @param id
	 */
	public void deleteById(Long id);
	
	/**
	 * 查询角色名字唯一性
	 * @param sysRole
	 * @return
	 */
	public List<SysRole> findSysRoleByOne(SysRole sysRole);
	
	/**
	 * 资源角色关联查询
	 * @param sysResourceRole
	 * @return
	 */
	public List<SysResourceRole> findSysResourceRole(SysResourceRole sysResourceRole);
	
	/**
	 * 添加资源角色关联
	 * @param sysResourceRole
	 * @return
	 */
	public Long insertSysResourceRole(SysResourceRole sysResourceRole);
	
	/**
	 * 更新资源角色关联
	 * @param sysResourceRole
	 * @return
	 */
	public Long updateSysResourceRole(SysResourceRole sysResourceRole);
	
	/**
	 * 删除资源角色关联
	 * @param id
	 */
	public void deleteSysResourceRoleById(Long id);

	/**
	 * 通过用户id查询角色
	 * @param userId
	 * @return
	 */
	public List<SysRole> findRoleByUserId(Long userId);
	
}
